'''
@Descripttion: 
@version: 
@Author: dkolli
@Date: 2019-10-28 23:44:25
@LastEditors: dkolli
@LastEditTime: 2019-10-29 01:26:21
'''
# 实现一个自动取款机的存取款模拟效果。
# 要求有登陆和退出、查询余额、取钱，存钱等操作。
# 1、登陆初始化系统
# 2、查询余额信息
# 3、取钱
# 4、存钱
# 5、退出系统
# 6、界面和交互

import random


# 1、系统初始化

print('=' * 40)
print('=' * 13, '系统初始化……', '=' * 13)
print('=' * 40)
bank_account={}
bank_account['account_name'] = input('请输入您的帐号：')
bank_account['account_passwd'] = input('请输入您的密码：')
# 建立账户后，随机为账户生成一个奖励金额，取值在1-999999
bank_account['balance'] = round(random.uniform(1, 999999),2)
print('恭喜您获得来自虚空的奖励：{}元'.format(bank_account['balance']))
print('请您登陆系统，查收奖励！')


# 2、查询余额信息
def show_account_info():
    print('=' * 40)
    print('=' * 13, '账户信息查询', '=' * 13)
    print('{0:1}|{1:^8}|{2:^15}|'.format(' ','账户名称', '余额'))
    print('{0:1}|{1:^12}|{2:^17}|'.format(' ',bank_account["account_name"], bank_account['balance']))
    print('=' * 40)

# 这里有个疑问，为啥占位符不同，最后的输出样式一样？这里占位符到底是怎么计算的？

# 测试2 2、查询余额信息
# show_account_info()

# 3、取钱
def withdraw():
    print('=' * 40)
    withdraw_money = float(input('请输入您要取的金额：'))
    if withdraw_money > 0:
        bank_account['balance'] -= withdraw_money
        show_account_info()
    else:
        print('您输入的有误，请重新输入一个正数。')
        withdraw()
    
    
# 测试3 3、取钱
# withdraw()

# 4、存钱
def save():
    print('=' * 40)
    save_money = float(input('请输入您要存的金额：'))
    if save_money > 0:
        bank_account['balance'] += save_money
        show_account_info()
    else:
        print('您输入的有误，请重新输入一个正数。')
        save()

# 测试4 4、取钱
# save()

# 5、退出系统
def login_out():
    print('当您退出系统，您的虚拟财产将回归虚空，请确认您的选择：Y/N?')
    choice = input()
    if choice == 'Y' or choice == 'y':
        print('ヾ(￣▽￣)Bye~Bye~')
    if choice == 'N' or choice == 'n':
        print('舍不得钱也不是你的，嘿嘿~')


while True:
    # 输出一个系统交互界面：
    print('=' * 40)
    print('=' * 11, '虚空银行管理系统', '=' * 11)
    print('=' * 40)
    print('{:1}{:13}{:15}'.format(' ','1.查询余额信息','2.取钱'))
    print('{:1}{:13}{:15}'.format(' ','3.存钱','4.退出系统'))
    print('=' * 40)
    # 根据键盘的输入操作值，完成相应操作。
    key = input('请输出您的选择：')
    if key == '1':
        show_account_info()
        input('按回车继续：')
    elif key == '2':
        withdraw()
        input('按回车继续：')
    elif key == '3':
        save()
        input('按回车继续：')
    elif key == '4':
        login_out()
        break
    else:
        print('=' * 12, '操作无效', '=' * 12)
        input('按回车继续：')

    
    
    

